/**
 * Author: Lomo
 * email: lomo@lomo.space
 * 
 */
// =============================================================================
// Basic JS -- Navigation Bar/Print/Download Page(PDF Output)
// =============================================================================
$(document).ready(function($) {

    // Top navbar animation
    // ------------------------------------------------------------------------
    $(document).bind('shrink-menu-init', function(e, status) {
        var topBarHeight = $('.navbar-extra-top').outerHeight(); // getting the height of the nabar-extra-top
        scrollMark = Math.max(topBarHeight, 30); // forced minimum of 30
        style = ".menu-shrink {top : -" + topBarHeight + "px !important;}";
        if (!$('#ShrinkMenu').length) {
            $("<style></style>").attr('id', 'ShrinkMenu').data('scrollMark', scrollMark).appendTo("head"); // add custom CSS for height offset
        }
        $('#ShrinkMenu').html(style);
    });
    // navbar adjustments on scroll
    $(document).bind('shrink-menu', function(e, status) {
        scrollMark = $('#ShrinkMenu').data('scrollMark');
        // when scroll hits height of navbar top, apply style changes
        if ($(this).scrollTop() < scrollMark) {
            $('#MainMenu').removeClass('scrolled menu-shrink');
        } else {
            $('#MainMenu').addClass('scrolled menu-shrink');
        }
    });
    // trigger shrink-menu on scroll
    $(window).resize(function() {
        $(document).trigger('shrink-menu-init');
    });
    $(window).scroll(function() {
        $(document).trigger('shrink-menu');
    });

    // Sub-navbar affix on scroll
    // ------------------------------------------------------------------------
    if ($('#SubMenu').length) {
        $('#SubMenu').affix({
            offset: {
                top: function() {
                    return $('#SubMenu').parent().offset().top - $('#navbar-main-container').outerHeight();
                },
            }
        }).css('top', $('#navbar-main-container').outerHeight());
        // Update values on window resize
        $(window).resize(function() {
            theTop = $('#SubMenu').parent().offset().top - $('#navbar-main-container').outerHeight();
            $('#SubMenu').data('bs.affix').options.offset = { top: theTop };
        });
    }

    // accordions - always have 1 panel open
    // ------------------------------------------------------------------------
    if ($('.panel-heading').length) {

        $('.panel-heading').on('click', function(e) {
            if ($(this).parents('.panel').children('.panel-collapse').hasClass('in')) {
                e.preventDefault();
                e.stopPropagation();
            }
        });
    }

    // Tooltips
    // ------------------------------------------------------------------------
    $('[data-toggle="tooltip"]').tooltip({
        placement: function(tip, trigger) {
            // show above, unless no space. show bottom on affixed sub-nav
            return ($(trigger).parents('#SubMenu.affix').length) ? 'bottom' : 'auto top';
        }
    });

    // owl carousel
    // ------------------------------------------------------------------------
    if ($('.featured-carousel').length) {
        $(".featured-carousel").owlCarousel({
            items: 1,
            loop: true,
            autoplay: true,
            autoplayHoverPause: true,
            autoplayTimeout: 3800,
            autoplaySpeed: 800,
            navSpeed: 500,
            dots: false,
            nav: true,
            navText: [
                '<i class="fa fa-angle-left"></i>',
                '<i class="fa fa-angle-right"></i>'
            ]
        });
    }

    // // Navbar Hover/Click Responsive Behavior
    // // ------------------------------------------------------------------------
    // collapseSize = 1299; // 768;

    // // hover sub-menu items
    // $('.navbar-nav a').click(function(e) {
    //     $this = $(e.target);
    //     href = $this.attr('href'); // Link URL

    //     // Check link value
    //     if (href === undefined || !href.length || href === '#' || href === 'javascript:;') {
    //         href = false;
    //     }
    //     // Link behavior
    //     if ($this.hasClass('dropdown-toggle')) {
    //         // Parent menu items
    //         if ($(window).width() > collapseSize) {
    //             if (href) {
    //                 // large screens, follow the parent menu link when clicked
    //                 if (e.which !== 2) {
    //                     window.location.href = href;
    //                 }
    //             }
    //         } else if ($this.parent().hasClass('open') && href !== false) {
    //             // small screens, 1st tap opens sub-menu & 2nd tap follows link
    //             $(document).trigger('collapse-menus');
    //             window.location.href = href;
    //         }
    //     } else {
    //         // All other menu items, close menu on click
    //         $(document).trigger('collapse-menus');
    //     }
    // });
    // // Keep parent menus open on sub-menu expand
    // $(document).on('show.bs.dropdown', function(obj) {
    //     if ($(window).width() <= collapseSize) {
    //         $(obj.target).parents('.show-on-hover').addClass('open');
    //     }
    // });
    // $('.navbar a:not(.dropdown-toggle)').click(function(e) {

    //     $this = $(e.target);
    //     href = $this.attr('href'); // Link URL

    //     // Check link value
    //     if (href === undefined || !href.length || href === '#' || href === 'javascript:;') {
    //         href = false;
    //     }
    //     // Link behavior
    //     if ($(window).width() > collapseSize) {
    //         if (href) {
    //             // large screens, follow the parent menu link when clicked
    //             if (e.which !== 2) {
    //                 window.location.href = href;
    //             }
    //         }
    //     } else if ($this.parent().hasClass('open') && href !== false) {
    //         // small screens, 1st tap opens sub-menu & 2nd tap follows link
    //         $(document).trigger('collapse-menus');
    //         window.location.href = href;
    //     }
    // });
    // // Close all menus
    // $(document).on('collapse-menus', function() {
    //     $('.collapse.in').removeClass('in').children().removeClass('open');
    // });
    // // Hover styling helpers
    // $('.navbar-nav > li.show-on-hover').hover(function() {
    //     if ($(window).width() > collapseSize) {
    //         $(this).addClass('open');
    //     }
    // }, function() {
    //     if ($(window).width() > collapseSize) {
    //         $(this).removeClass('open');
    //     }
    // });


    //关闭click.bs.dropdown.data-api事件，使顶级菜单可点击
    // $(document).off('click.bs.dropdown.data-api');

    // =========================================================================
    // 展开或收敛导航栏一级下拉菜单按钮
    // =========================================================================
    //自动展开
    $('.nav .dropdown').mouseenter(function() {
        // console.log("一级菜单展开了");
        $(this).addClass('open');
    });
    //自动关闭
    $('.nav .dropdown').mouseleave(function() {
        // console.log("一级菜单离开了");
        $(this).removeClass('open');
    });

    // =========================================================================
    // 展开或收敛导航栏二级下拉菜单按钮
    // =========================================================================
    $('.nav .dropdown .dropdown-submenu').mouseenter(function() {
        // console.log("二级菜单dropdown-submenu展开了");
        $(this).addClass('open');
    });
    //自动关闭
    $('.nav .dropdown .dropdown-submenu').mouseleave(function() {
        // console.log("二级菜单dropdown-submenu离开了");
        $(this).removeClass('open');
    });


    // Things we want to trigger once, forcefully, after loading the page
    // ------------------------------------------------------------------------

    // Fire the menu shrink function
    $(document).trigger('shrink-menu-init');
    $(document).trigger('shrink-menu');

    // =========================================================================
    // print the page
    // =========================================================================
    $(".fa.fa-fw.fa-print").click(function() {
        console.log("打印整个页面~");
        window.print();
    });

    $(".fa.fa-fw.fa-file-pdf-o").click(function() {
        // svg2canvas("#pdfArea");
        html2PDF();
    });

});



// =============================================================================
// Convert HTML2PDF
// =============================================================================

// function svg2canvas(targetElem) {
//     var svgElem = $(targetElem).find('svg');
//     svgElem.each(function(index, node) {
//         var parentNode = node.parentNode;
//         //由于现在的IE不支持直接对svg标签node取内容，所以需要在当前标签外面套一层div，通过外层div的innerHTML属性来获取
//         var tempNode = document.createElement('div');
//         tempNode.appendChild(node);
//         var svg = tempNode.innerHTML;
//         var canvas = document.createElement('canvas');
//         //转换
//         canvg(canvas, svg);
//         parentNode.appendChild(canvas);
//     });
// }

function html2PDF() {
    html2canvas($("#pdfArea"), {
        onrendered: function(canvas) {
            var imgData = canvas.toDataURL('image/jpeg');
            var img = new Image();
            img.src = imgData;

            img.onload = function() {
                var doc = "";
                if (this.width > this.height) {
                    doc = new jsPDF('1', 'mm', [this.width * 0.225, this.height * 0.225]);
                } else {
                    doc = new jsPDF('p', 'mm', [this.width * 0.225, this.height * 0.225]);
                }
                doc.addImage(imgData, 'jpeg', 0, 0, this.width * 0.225, this.height * 0.225);
                doc.save('report_pdf_' + new Date().getTime() + '.pdf');
            };
        },
        background: "#fff",
        allowTaint: true
    });
}



// =============================================================================
// Model For Illustration
// =============================================================================

// var illustrating = {
//     Illustrate: function(basicObj, xData, yData, documentID, bool3D, toolTips) {
//         //Title  -- Must
//         var title = {
//             text: basicObj.title
//         };
//         //sub Title -- optional
//         var subtitle = {
//             text: basicObj.subtitle
//         };
//         //X轴 -- Must
//         var xAxis = {
//             categories: xData,
//             // tickInterval: 3,
//             labels: {
//                 // x: 15
//                 style: { "color": "#fff", "font-size": "10px", "font-family": "微软雅黑", "font-weight": "normal" }
//             }
//         };
//         //Y轴 -- Must
//         /**
//          * text: yAxis_text -- 图Y轴最左侧，代表纵轴的具体含义
//          */
//         var yAxis = {
//             title: {
//                 text: basicObj.yAxis_text,
//                 style: { "color": "#fff", "font-size": "13px", "font-family": "微软雅黑", "font-weight": "normal" }
//             },
//             plotLines: [{
//                 value: 0,
//                 width: 1,
//                 color: '#808080'
//             }]
//         };
//         //simple config when Mousr Hover to Show tips
//         var tooltip = {
//             shared: true,
//             useHTML: true,
//             style: {
//                 color: 'orange',
//                 fontSize: '11px',
//                 fontWeight: 'normal',
//                 fontFamily: 'Courir new'
//             }
//         };
//         //charts legend
//         var legend = {
//             layout: 'vertical',
//             align: 'right',
//             verticalAlign: 'middle',
//             itemStyle: {
//                 'fontSize': '10px',
//                 'font-family': 'Microsoft YaHei'
//             },
//             borderWidth: 0
//         };
//         //Chart Global Config
//         /**
//          * type -- Charts Type: line/column/pie ...
//          * name -- 数据点名称(鼠标悬停时显示的Y轴含义)
//          */
//         var series = [{
//             type: basicObj.series_type,
//             name: basicObj.series_name,
//             data: yData,
//             color: basicObj.color,
//             colorByPoint: true, //使用系统随机配色, 否则使用上一个选项color值作为图颜色
//             lineWidth: 0.5,
//             dataLabels: {
//                 enabled: true, //允许显示 数据标签
//                 //format: '{x} \t {y} mm',
//                 style: {
//                     fontSize: '15px'
//                         //fontFamily: ''
//                         //color: 'green'
//                 }
//                 // formatter: function() {
//                 //     return this.x + "\t" + this.y + " mm";
//                 // }

//             }
//         }];
//         //Config For 3D Charts
//         var chart = {
//             //type: basicObj.series_type,
//             margin: 75,
//             options3d: {
//                 enabled: bool3D,
//                 alpha: 15,
//                 beta: 23,
//                 viewdistance: 25,
//                 depth: 65
//             }
//         };

//         var json = {};
//         json.title = title;
//         json.subtitle = subtitle;
//         json.xAxis = xAxis;
//         json.yAxis = yAxis;
//         json.tooltip = tooltip;
//         json.legend = legend;
//         json.series = series;
//         json.chart = chart;
//         $(documentID).highcharts(json);
//     }
// };